package cn.iocoder.yudao.module.system.controller.admin.gugu.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 智能推荐大学响应 VO
 *
 * @author 芋道源码
 */
@Schema(description = "管理后台 - 智能推荐大学响应 VO")
@Data
public class CollegeRecommendRespVO {

    @Schema(description = "总记录数", example = "120")
    private Long total;

    @Schema(description = "推荐院校列表")
    private List<CollegeRecommendItemVO> list;

    @Schema(description = "当前页码", example = "1")
    private Integer pageNum;

    @Schema(description = "每页大小", example = "10")
    private Integer pageSize;

    @Schema(description = "当前页记录数", example = "10")
    private Integer size;

    @Schema(description = "起始行", example = "1")
    private Integer startRow;

    @Schema(description = "结束行", example = "10")
    private Integer endRow;

    @Schema(description = "总页数", example = "12")
    private Integer pages;

    @Schema(description = "上一页", example = "0")
    private Integer prePage;

    @Schema(description = "下一页", example = "2")
    private Integer nextPage;

    @Schema(description = "是否为首页", example = "true")
    private Boolean isFirstPage;

    @Schema(description = "是否为末页", example = "false")
    private Boolean isLastPage;

    @Schema(description = "是否有上一页", example = "false")
    private Boolean hasPreviousPage;

    @Schema(description = "是否有下一页", example = "true")
    private Boolean hasNextPage;

    @Schema(description = "导航页数", example = "8")
    private Integer navigatePages;

    @Schema(description = "导航页码数组", example = "[1, 2, 3, 4, 5, 6, 7, 8]")
    private List<Integer> navigatepageNums;

    @Schema(description = "导航首页", example = "1")
    private Integer navigateFirstPage;

    @Schema(description = "导航末页", example = "8")
    private Integer navigateLastPage;

    @Schema(description = "推荐汇总信息")
    private SummaryVO summary;

    /**
     * 推荐汇总信息内部类
     */
    @Schema(description = "推荐汇总信息")
    @Data
    public static class SummaryVO {

        @Schema(description = "用户分数", example = "580")
        private Integer userScore;

        @Schema(description = "用户位次", example = "15000")
        private Integer userRank;

        @Schema(description = "省份", example = "江苏")
        private String province;

        @Schema(description = "考试类型", example = "物理类")
        private String examType;

        @Schema(description = "选科组合", example = "物理+化学+生物")
        private String subjectCombination;

        @Schema(description = "冲刺院校数量", example = "30")
        private Integer chongCount;

        @Schema(description = "稳妥院校数量", example = "50")
        private Integer wentuoCount;

        @Schema(description = "保底院校数量", example = "40")
        private Integer baodiCount;

        @Schema(description = "分析文本", example = "基于您的分数580分，位次15000名，为您推荐120所院校")
        private String analysisText;
    }
}
